作者:用户rsvowi2rvt | 来源:互联网 | 2023-09-24 08:00
篇首语:本文由编程笔记#小编为大家整理,主要介绍了.Net Core008 Model和DTOAutoMapper基本使用相关的知识,希望对你有一定的参考价值。
文章目录
- 数据传输模型DTO和数据模型Model
- 分离DTO和Model
- 下载依赖和DTO转换
- AutoMapper使用提供DTO数据
数据传输模型DTO和数据模型Model
使用数据模型Model的弊处
直接暴露了业务模型的数据
颗粒度太粗
问题思考:使用Model不足的场景?
分离DTO和Model
下载依赖和DTO转换
下载依赖
# 下载依赖
AutoMapper.Extensions.Microsoft.Dependencylnjection
哪些数据是不想暴露给前端呢?哪些数据是需要做转换呢?
Model和DTO转换
创建Dtos文件夹、创建对应的Dto类
public class TouristRouteDto
AutoMapper使用提供DTO数据
AutoMapper 是一个对象-对象映射器,可以将一个对象映射到另一个对象
1.配置好Startup注册服务
//扫描profile文件【AutoMapper服务】
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
2.创建对应文件
创建Profiles文件夹及对应Profile文件
using AutoMapper;
public class TouristRouteProfile : Profile
//在映射类的构造函数中配置
public TouristRouteProfile()
投影和映射
投影就是把多个关系对象,经过一定的转换成为投影的产物
// dest投影的目标对象
// opt投影的原始对象
CreateMap()
.ForMember(
dest => dest.Price,
opt => opt.MapFrom(src => src.OriginalPrice * (decimal)(src.DiscountPresent ?? 1))
)
3.注入到Controller中替换成为DTO数据
/*
固定注入
*/
private ITouristRouteRepository _touristRouteRepository;//私有变量加上下划线
private readonly IMapper _mapper;
public TouristRoutesController(ITouristRouteRepository touristRouteRepository,IMapper mapper)//构造
_touristRouteRepository = touristRouteRepository;//转变成私有存入
_mapper = mapper;